跳到主要内容

通过 MQTT 触发

本教程演示如何使用简单的 MQTT 消息远程触发您的 OV20i 摄像头。只需几个步骤,您就可以构建一个能够从网络任何位置捕获和处理图像的系统——无需复杂编程!

您将构建的内容: 一个简单的远程触发器,允许您通过网络发送基本消息来启动摄像头检测。

预计时间: 20-30 分钟

技能水平: 初学者

实际示例: 想象一下,操作员平板上的一个按钮可以立即触发摄像头检测零件——我们构建的就是这样一个系统,但使用的是 MQTT 消息而非按钮。

先决条件

开始之前,请确保您已具备:

  • 已连接并正常工作的 OV20i 摄像头
  • 已设置并准备好的 recipe
  • 已配置 MQTT 通信(如有需要,请参见“MQTT Communication Setup”指南)
备注

您的摄像头触发模式必须在 Imaging Setup 中设置为 Manual ——这告诉摄像头等待您的远程命令,而不是自动拍摄。

为什么 MQTT 触发如此简单

OV20i 让远程触发变得轻松:

  • 无需编码 ——只需拖拽并连接几个节点
  • 即时生效 ——发送消息,立即获得结果
  • 消息可靠 ——MQTT 确保命令送达摄像头
  • 任何设备均可触发 ——平板、电脑、PLC 或传感器

适用场景: 远程检测控制、自动化生产线,或任何需要从其他位置触发摄像头的情况。

步骤 1:快速检查摄像头

1.1 将摄像头设置为手动触发

  1. 进入 Recipe Editor
  2. 点击“Imaging Setup”
  3. 找到 Trigger Mode 并设置为“Manual”
  4. 点击保存

为什么选择 Manual? 这告诉摄像头“等待我的命令”,而不是自动拍照。

1.2 找到您的 Recipe 编号

  1. 在 Recipe Editor 中查看浏览器地址栏
  2. 找到 /recipe/ 后面的数字(例如:URL 显示 /recipe/10,则编号为 10)
  3. 记下此编号 — 稍后需要用到

image.png

步骤 2:打开 Flow Builder

2.1 进入 Node-RED

  1. 在 Recipe Editor 中点击“IO Block”
  2. 点击“Configure IO”

2.2 从头开始

如果画布上已有其他节点,没关系 ——我们将在旁边添加新的触发流程。

开始吧!

步骤 3:MQTT 触发的简单秘诀

您需要知道的是:摄像头远程拍照需要发送两条快速消息。

  1. 第一条消息:“摄像头,准备接收远程命令”
  2. 第二条消息:“现在拍照!”

3.1 拖拽以下 5 个节点到画布

从左侧面板拖入主区域:

  1. Inject(输入部分)——作为您的“触发按钮”
  2. Change(功能部分)——用于第一条消息
  3. Delay(功能部分)——两条消息间的短暂停顿
  4. Change(功能部分)——用于第二条消息
  5. MQTT Out(网络部分)——向摄像头发送消息

image.png

步骤 4:配置节点

4.1 设置触发按钮

  1. 双击 Inject 节点
  2. 将名称改为“Remote Trigger”
  3. 点击“Done”

4.2 设置消息 1(准备命令)

  1. 双击第一个 Change 节点
  2. 名称改为“Get Ready”
  3. 点击“Add”,选择“SET”
  4. 设置 msg.topicstream_mode/set
  5. 再次点击“Add”,选择“SET”
  6. 设置 msg.payloadHMI_MODE
  7. 点击“Done”

作用: 告诉摄像头“准备接收远程命令”。

image.png

4.3 添加短暂延迟

  1. 双击 Delay 节点
  2. 设置延迟为 10 毫秒
  3. 点击“Done”

原因: 给摄像头一点时间准备。

4.4 设置消息 2(拍照命令)

  1. 双击第二个 Change 节点
  2. 名称改为“Take Picture”
  3. 点击“Add”,选择“SET”
  4. 设置 msg.topichmi/[YOUR_RECIPE_NUMBER]/capture_mode
  5. 将 [YOUR_RECIPE_NUMBER] 替换为您的实际编号(例如 hmi/10/capture_mode
  6. 再次点击“Add”,选择“SET”
  7. 设置 msg.payloadsingle
  8. 点击“Done”

作用: 告诉摄像头“现在拍一张照片!”

image.png

4.5 设置消息发送节点

  1. 双击 MQTT Out 节点
  2. 选择您的 MQTT broker(应已配置)
  3. 名称改为“Send to Camera”
  4. 点击“Done”

步骤 5:连接所有节点

这是有趣的部分! 现在将节点连接起来形成流程。

5.1 连接方式

按如下方式连线:

  1. Remote Trigger → Get Ready → Send to Camera
  2. Remote Trigger → Delay → Take Picture → Send to Camera

示意图:

Remote Trigger ──→ Get Ready ──→ Send to Camera

└──→ Delay ──→ Take Picture ──→ Send to Camera

5.2 如何连接节点

  1. 点击并拖动节点右侧的小方块
  2. 将连线拖到下一个节点左侧
  3. 您会看到灰色连线连接它们

步骤 6:测试远程触发

6.1 激活流程

  1. 点击右上角红色“Deploy”按钮
  2. 确认出现“Successfully deployed”消息

6.2 试用

  1. 将工件放置在摄像头前(用于测试)
  2. 点击“Remote Trigger”节点上的按钮
  3. 观察摄像头拍照!

成功标志:

  • 摄像头 LED 短暂闪烁
  • 听到检测处理声音
  • 库中出现新图像

6.3 检查结果

进入 Library 页面,您应看到带有最新时间戳的新图像。点击查看检测结果!

如果成功: 恭喜!您已远程触发摄像头。

如果失败: 请查看下方故障排除部分。

步骤 7:从其他设备使用(可选)

想用手机、平板或其他电脑触发? 操作如下:

7.1 使用任何 MQTT 应用

下载任意 MQTT 应用,连接摄像头 IP 地址的 1883 端口,然后:

  1. 发送第一条消息:
    • Topic: stream_mode/set
    • Message: HMI_MODE
  2. 稍等片刻,发送第二条消息:
    • Topic: hmi/[YOUR_RECIPE_NUMBER]/capture_mode
    • Message: single

7.2 命令行方式

Windows/Mac/Linux 上:

# 第一条消息
mosquitto_pub -h [CAMERA_IP] -t "stream_mode/set" -m "HMI_MODE"

# 第二条消息(将 10 替换为您的 recipe 编号)
mosquitto_pub -h [CAMERA_IP] -t "hmi/10/capture_mode" -m "single"

就是这样! 您的摄像头将从网络任何位置拍照。

步骤 8:验证与测试

8.1 端到端测试

完整工作流验证:

测试操作预期结果状态
手动触发点击注入按钮图像被捕获并处理
HMI 模式激活检查摄像头状态摄像头切换到 HMI 模式
执行检测验证处理调试显示检测结果
外部触发发送 MQTT 命令远程触发成功

8.2 性能验证

监控以下指标:

  • 触发响应时间: 从 MQTT 消息到图像捕获
  • 处理时长: 完成检测所需时间
  • 结果交付: 调试输出时间
  • 系统可靠性: 多次测试触发稳定性

8.3 生产准备

部署到生产前:

  1. 使用实际工件和检测条件测试
  2. 验证与外部系统集成
  3. 确认 MQTT 通信网络可靠
  4. 记录触发主题和消息格式

步骤 9:快速故障排除

无法正常工作?以下是常见解决方案:

9.1 摄像头不拍照

问题快速解决方法
点击触发无反应检查“Take Picture”节点中的 recipe 编号是否正确
摄像头拍照但无检测确认 recipe 已激活且有训练模型
触发偶尔有效确认 Imaging Setup 中触发模式为 Manual

9.2 MQTT 问题

问题快速解决方法
MQTT 节点出现红点检查 MQTT broker 连接配置
部署按钮灰显先点击画布任意处,再尝试部署
节点无法连接确保从节点右侧小方块拖动连线
备注

仍有问题? 请再次确认 MQTT 通信配置正确(参见 MQTT Communication Setup 指南)。

您成功了!🎉

恭喜! 您已实现 OV20i 摄像头的远程控制。只需几次点击,您构建了一个能够:

  • 从网络任何位置触发检测
  • 支持手机、平板、电脑等设备发送 MQTT 消息
  • 集成 PLC、传感器或自定义应用
  • 通过不同 recipe 编号扩展多摄像头系统

接下来做什么?

基础搭建完成后,您可以:

简单后续步骤

  • 使用 MQTT 应用从不同设备测试
  • 为不同 recipe 创建多个触发器
  • 将其纳入生产流程

高级思路

  • 连接 PLC,实现自动化生产线
  • 构建自定义应用,触发多台摄像头
  • 添加结果转发,发送检测数据到其他系统
  • 创建操作员仪表盘,带触发按钮

真实案例

其他用户如何使用 MQTT 触发:

  • 质量控制站: 操作员扫描条码,系统触发摄像头检测
  • 输送线: 传感器检测到零件,自动触发检测
  • 手动检测: 操作员平板上的“Inspect”按钮
  • 生产监控: 中央系统协调多台摄像头

应用无限可能 ——一切从您刚搭建的简单系统开始!

🔗 相关链接